/**
 * @fileOverview
 * @author David Foley
 * @exports IModel as org.puremvc.js.multicore.interfaces.IModel
 */

/**
 * @interface
 */
function IModel () {};
   
/**
 * 
 * @param {org.puremvc.js.multicore.interfaces.IProxy} proxy
 */
IModel.prototype.registerProxy= function (proxy) { };

/**
 * Retrieve an <code>IProxy</code> instance from the Model.
 * 
 * @param {string} proxyName
 * @return {org.puremvc.js.multicore.interfaces.IProxy}
 *  the <code>IProxy</code> instance previously registered with the given 
 *  <code>proxyName</code>.
 */
IModel.prototype.retrieveProxy= function (name) { };

/**
 * Remove an <code>IProxy</code> instance from the Model.
 * 
 * @param {string} proxyName
 *   The name of the <code>IProxy</code> instance to be removed.
 * @return {org.puremvc.js.multicore.patterns.proxy.IProxy}
 *  the <code>IProxy</code> that was removed from the <code>Model</code>
 */
IModel.prototype.removeProxy= function (name) { };

/**
 * Check if a Proxy is registered.
 * 
 * @param {string} proxyName
 * @return {boolean}
 *  whether a Proxy is currently registered with the given <code>proxyName</code>.
 */
IModel.prototype.hasProxy= function (name) { };